home *** CD-ROM | disk | FTP | other *** search
- /* Communications Program for C86
- by Earl C. Terwilliger Jr
- Version 1.0 05-02-1983
- */
- #include "stdio.h"
- #define LF 10
- #define PORT 0
- #define TRUE 1
- main() {
- unsigned flags = 0;
- struct regval { unsigned ax,bx,cx,dx,si,di,ds,es; };
- struct regval srv,rrv;
- srv.dx = PORT; /* RS232 port */
- srv.ax = 0X005A; /* Initialize
- Parms 300,E,1,7 */
- sysint(20,&srv,&rrv); /* INT 14H */
- while (TRUE) {
- srv.ax = 0X0300; /* Return Rs232 status */
- srv.dx = PORT;
- sysint(20,&srv,&rrv); /* INT 14H */
- while (rrv.ax & 0X0100) {
- srv.ax = 0X0200; /* Receive a character */
- srv.dx = PORT;
- sysint(20,&srv,&rrv); /* INT 14H */
- putchar(rrv.ax); /* Display a character */
- srv.ax = 0X0300; /* Rs232 Status */
- srv.dx = PORT;
- sysint(20,&srv,&rrv); /* INT 14H */
- }
- srv.ax = 0X0100; /* Test Keyboard buffer */
- flags = sysint(22,&srv,&rrv); /* INT 16H */
- flags &= 0X0040; /* Mask out all but Z */
- while (!flags) {
- srv.ax = 0; /* Get a Keyboard char */
- sysint(22,&srv,&rrv); /* INT 16H */
- srv.ax = rrv.ax & 0X01FF; /* Character to send */
- srv.ax |= 0X0100; /* Rs232 send function */
- srv.dx = PORT;
- sysint(20,&srv,&rrv); /* INT 14H */
- srv.ax = 0X0100; /* Test Keyboard buffer */
- flags = sysint(22,&srv,&rrv); /* INT 16H */
- flags &= 0X0040; /* Mask out all but Z */
- }
- }
- }
-